package b;

import org.junit.Test;

import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;

public class 缺失的第一个正数_时间复杂度On {

    public void swap(int[] nums,int i,int j){
        int t=nums[i];
        nums[i]=nums[j];
        nums[j]=t;
    }
    //
    public int 缺失的第一个正数_时间复杂度On(int[] nums) {
        for(int i = 0;i <= nums.length - 1;++i){
            if(nums[i] == i + 1) continue;
            while(nums[i] > 0 && nums[i] <= nums.length && nums[nums[i]-1] != nums[i])
                swap(nums,i,nums[i]-1);
        }
        for(int i = 0;i <= nums.length - 1;++i){
            if(nums[i] != i+1) return i+1;
        }
        return nums.length + 1;
    }

}
